<?php
session_start();
// Inkluderar alla klasser som skall testas.
require_once 'DatabaseConnection.php';
require_once 'LoginView.php';
require_once 'FormValidation.php';
require_once 'LoginHandler.php';
require_once 'Register.php';
require_once 'Log.php';
require_once 'NotesHandler.php';
require_once 'Settings.php';

class Test
{
    public function doTests()
    {
        // Test av Loggningsklassen.
		$Log = new Log();
		if ($Log->test() == false)
		{
			return false;
		}
		
		// Test av FormValidation.
		$FormValidation = new FormValidation();
		
		if ($FormValidation->test() == false)
		{
			return false;
		}
		
		// Skapar ett settings objekt.
		$Settings = new Settings();
		
		
		// skapar ett databasobjekt som jobbar mot test_tabellerna.
		$database = new DatabaseConnection($Settings->getDbHost(), $Settings->getDbUsername(), $Settings->getDbPassword(), $Settings->getDbName(), "test_");

		$database->Connect();
		
		
		// Test av Register.
		$Register = new Register($database);
		if ($Register->test() == false)
		{
			return false;
		}
				
		$LoginHandler = new LoginHandler($database);
		// Test av LoginHandler.
		if ($LoginHandler->test() == false)
		{
			return false;
		}
		
		// Test utav NotesHandler.
		$NotesHandler = new NotesHandler($database);
		if ($NotesHandler->test() == false)
		{
			return false;
		}
		
		// Stänger databasen.
		$database->close();
		
        // Return true, om alla tester lyckades,
        return true;
    }
}

$TestAll = New Test();
if ($TestAll->doTests() == true)
{
    echo "Alla tester <strong>lyckades!</strong>";
}
else
{
    echo "Tester <strong>misslyckades!</strong>";
}
?>
